package com.yanfan.energy.service;


import com.yanfan.common.core.domain.AjaxResult;
import com.yanfan.common.core.page.PageDomain;
import com.yanfan.energy.domain.SetEnergyAllocation;
import com.yanfan.energy.domain.SetEnergyAllocationDTO;
import com.yanfan.iot.domain.Device;

import java.util.List;

/**
 * 手动设置能源分配(SetEnergyAllocation)表服务接口
 *
 * @author makejava
 * @since 2022-10-26 20:32:32
 */
public interface SetEnergyAllocationService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AjaxResult queryById(Integer id);

    /**
     * 新增数据
     *
     * @param setEnergyAllocation 实例对象
     * @return 实例对象
     */
    SetEnergyAllocation insert(SetEnergyAllocation setEnergyAllocation);

    /**
     * 修改数据
     *
     * @param setEnergyAllocationdto 实例对象
     * @return 实例对象
     */
    AjaxResult update(SetEnergyAllocationDTO setEnergyAllocationdto);

    /**
     * 修改能源分配的集合信息
     *
     * @param setEnergyAllocationDto
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author caijinkang
     * @date 2023/3/24 11:09
     */
    AjaxResult editList(List<SetEnergyAllocationDTO> setEnergyAllocationDto);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    AjaxResult deleteById(Integer id);

    /**
     * 查询设备能源分配
     *
     * @param equipments
     * @return
     */
    AjaxResult findEnergyAllocation(Integer[] equipments);

    /**
     * 分页参数
     *
     * @param pageDomain
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author caijinkang
     * @date 2023/4/24 10:04
     */
    AjaxResult findEnergyAllot(PageDomain pageDomain);

    /**
     * 按能源类型查询能源
     *
     * @param device
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author caijinkang
     * @date 2023/3/28 18:47
     */
    AjaxResult showEnergyType(Device device);

    /**
     * 能源单价占比新增
     *
     * @param setEnergyAllocationdto
     * @return
     */
    AjaxResult add(SetEnergyAllocationDTO setEnergyAllocationdto);

    /**
     * 查询能源类型
     *
     * @return 单条数据
     */
    AjaxResult showType();

}
